<?php

/**
 * Subclass for performing query and update operations on the 'ap_procedimiento' table.
 *
 * 
 *
 * @package lib.model
 */ 
class ApProcedimientoPeer extends BaseApProcedimientoPeer
{
  public static function loadDataFromFile($eliminarRegistrosAnteriores=false)
  {
    if($eliminarRegistrosAnteriores)
      ApProcedimientoPeer::doDeleteAll();
    $resultado = array();
    $totalRegistros=0;
    $criteria = new Criteria();
    $criteria->add(CtControlPeer::CODIGO_ARCHIVO,'AP%', Criteria::LIKE);
    $archivoControl = CtControlPeer::doSelectOne($criteria);
    $archivo = @file(sfConfig::get('sf_upload_dir')."/".$archivoControl->getCodigoArchivo().'.TXT');
    if($archivo)
    {
      foreach ($archivo as $line_num => $line)
      {
        $datos = explode(",", $line);
        $objeto = new ApProcedimiento();
        if(!AfTransaccionPeer::retrieveByPK(trim($datos[0])))
        {
          $factura = new AfTransaccion();
          $factura->setFacturaId(trim($datos[0]));
          $factura->save();
        }
        $objeto->setFacturaNumero(trim($datos[0]));
        
        $objeto->setEntidadPrestadoraId(trim($datos[1]));
        $objeto->setTipoIdentificacionId(trim($datos[2]));
        $objeto->setUsUsuarioId(trim($datos[3]));
        $objeto->setFechaProcedimiento(trim($datos[4]));
        $objeto->setNumeroAutorizacion(trim($datos[5]));
        $objeto->setCodigoProcedimiento(strtoupper(trim($datos[6])));
        $objeto->setAmbitoId(trim($datos[7]));
        
        if(trim($datos[8]) == "")
          $objeto->setFinalidadProcedimientoId('1');
        else
          $objeto->setFinalidadProcedimientoId(trim($datos[8]));
        
        if(trim($datos[9]) == '')
          $objeto->setPersonalProcedimientoId(null);
        else
          $objeto->setPersonalProcedimientoId(trim($datos[9]));
        
        if(trim($datos[10]) == '')
          $objeto->setDiagnosticoPrincipal(null);
        else
          $objeto->setDiagnosticoPrincipal(strtoupper(trim($datos[10])));
        if(trim($datos[11]) == '')
          $objeto->setDiagnosticoRelacionado(null);
        else
          $objeto->setDiagnosticoRelacionado(trim($datos[11]));
        
        if(trim($datos[12]) == '')
          $objeto->setComplicacion(null);
        else
          $objeto->setComplicacion(trim($datos[12]));
                
        if(trim($datos[13]) == '')
          $objeto->setTipoActoQuirurgicoId(null);
        else
          $objeto->setTipoActoQuirurgicoId(trim($datos[13]));
        $objeto->setValor(trim($datos[14]));
        $objeto->setValorNumero(trim($datos[14]));

        /*try
        {*/
          if($objeto->save())
            $totalRegistros++;
        /*}
        catch(PropelException $e)
        {
          echo $e->getMessage();
        }*/
      }
      $resultado['informacion']['AP']['registros-grabados'] = $totalRegistros;
    }
    else
      $resultado['errores']['AP'] = array('No se pudo leer el archivo '.$archivoControl->getCodigoArchivo());
    return $resultado;
  }
}
